﻿<?xml version="1.0" encoding="utf-8" ?>
<CounterSets>
  <!-- Genral Info and configurations for building reports-->
  <GeneralProperties>
    <!-- Lists of machine names to use when collecting data. This provides an easy way to identify what machines do what in various test results-->
    <MachineAliases>
      <!-- "Name substitution lists for the chart data sets. These values will get used in any place below
      where the alias name appears. 
          NOTE: use [xx] with the proper keyword to tell the tool to determine the machines from the database, using the
          following keywords:
              [CONTROLLER] - The controller machine that executed the test"
              [RIG] - The controller and all agents listed in the db for the given run 
              [SUT] - All machines from the run that are NOT part of the [RIG] list
              
          NOTE: You do not need to use any of this below. You can specify your machine names directly in the counter
          objects. You can use any valid SQL wildcard string, however, please note that any counter that uses 'machineName'
          will only use the first returned counterset. Counters that have a 'machineList' item will add multiple machines
          to the graph or table.-->
      <DefaultAliasSet>
        <Alias name="__SUT" machineList="'WEB01','WEB02','APP01','APP02','SQL01'" />
        <Alias name="__RIG" machineList="[RIG]" />      <!-- This uses the default rig list -->
        <Alias name="__WEB" machineList="'Web01','Web02'" />
        <Alias name="__APP" machineList="'App01','App02'" />
        <Alias name="__SQL" machineList="'SQL01'" />
        <Alias name="__CONTROLLER" machineList="'[CONTROLLER]'" />
      </DefaultAliasSet>

      <YourAliasSetHere>
        <Alias name="__SUT" machineList="'WEB01','WEB02','APP01','APP02','SQL01'" />
        <Alias name="__RIG" machineList="'Agent01','Agent02','Agent03'" />
        <Alias name="__WEB" machineList="'Web01','Web02'" />
        <Alias name="__APP" machineList="'App01','App02'" />
        <Alias name="__SQL" machineList="'SQL01'" />
        <Alias name="__CONTROLLER" machineList="'[CONTROLLER]'" />
      </YourAliasSetHere>
    </MachineAliases>
    <!-- List of colors (in the order to use them) for building charts-->
    <PlotColors>
      <item color="Red" />
      <item color="Blue" />
      <item color="Gray" />
      <item color="Orange" />
      <item color="Black" />
      <item color="Green" />
      <item color="DarkGreen" />
      <item color="DarkRed" />
      <item color="Magenta" />
      <item color="MediumBlue" />
    </PlotColors>
    <!-- This section defines overall appearance for the charts that will be used in the reports-->
    <ChartTemplates>
      <ChartTemplate name="HighResLarge">
        <Size_X>1950</Size_X> <!-- 6.5 inches when using 300 DPI-->
        <Size_Y>1200</Size_Y>
        <DPI>300</DPI>
        <titleFont>Microsoft Sans Serif, 36pt, style=Bold, GdiCharSet=0</titleFont>
        <axisTitleFont>Calibri, 28.2pt, style=Bold, GdiCharSet=0</axisTitleFont>
        <axisLabelFont>Microsoft Sans Serif, 22.2pt, GdiCharSet=0</axisLabelFont>
      </ChartTemplate>
      <ChartTemplate name="LowResLarge">
        <Size_X>624</Size_X> <!-- 6.5 inches when using 300 DPI-->
        <Size_Y>384</Size_Y>
        <DPI>96</DPI>
        <titleFont>Microsoft Sans Serif, 14pt, style=Bold, GdiCharSet=0</titleFont>
        <axisTitleFont>Calibri, 12pt, style=Bold, GdiCharSet=0</axisTitleFont>
        <axisLabelFont>Microsoft Sans Serif, 10pt, GdiCharSet=0</axisLabelFont>
      </ChartTemplate>
    </ChartTemplates>
    <!-- This section defines each item that will show up in a report for a single run iteration. Sections are added in the order they appear here. -->
    <SingleRunReportBuilder>
      <Section Name="Scenarios" IsEnabled="" Title="" />
      <Section Name="CoreCharts" IsEnabled="" Title="" />
      <Section Name="SutPerfmonCharts" IsEnabled="" Title="" />
      <Section Name="RigPerfmonCharts" IsEnabled="" Title="" />
      <Section Name="PageTablesGroupedByName" IsEnabled="" Title="" />
      <Section Name="TransactionTablesGroupedByName" IsEnabled="" Title="" />
      <Section Name="TestTimingTablesByInterval" IsEnabled="" Title="" />
      <Section Name="TransTimingTablesByInterval" IsEnabled="" Title="" />
      <Section Name="PageTimingTablesByInterval" IsEnabled="" Title="" />
      <Section Name="" IsEnabled="" Title="" />
      <Section Name="" IsEnabled="" Title="" />
      <Section Name="" IsEnabled="" Title="" />
      <Section Name="" IsEnabled="" Title="" />
      <Section Name="" IsEnabled="" Title="" />
      <Section Name="" IsEnabled="" Title="" />
      <Section Name="" IsEnabled="" Title="" />
    </SingleRunReportBuilder>
    <!-- This section defines each item that will show up in a report for a Multi-Run comparison. Sections are added in the order they appear here. -->
    <RunComparisonReportBuilder>
      <Section Name="" IsEnabled="" Title="" />
    </RunComparisonReportBuilder>
  </GeneralProperties>
  <!-- Items to be included in reports that are for a single load test iteration -->
  <SingleRun >
    <!-- Each section below will have a separate section in the report and will be grouped by that section. -->
    <PerfmonIntervalTables>
      <PerfmonIntervalTable Name="Processor Utilization" Category="Processor" Counter="% Processor Time" Instance="_Total" Machine="__SUT" Enabled="True" />
      <PerfmonIntervalTable Name="Available Physical Memory" Category="Memory" Counter="Available MBytes" Instance="" Machine="__SUT" Enabled="False" />
      <PerfmonIntervalTable Name="" Category="PhysicalDisk" Counter="Avg. Disk Queue Length" Instance="_Total" Machine="__SUT" Enabled="True" />
    </PerfmonIntervalTables>
    
    <KeyMetrics machineName="[CONTROLLER]" chartTemplate="HighResLarge" topQty="10" sortOrder="DESC" >
      <!-- Each counter below will get a separate chart and will utilize the top XX items in each chart. -->

      <!-- _____Timings_____ -->
      <chart chartTitle="Average Test Time" enabled="true">
        <counter category="LoadTest:Test" counter="Avg. Test Time" instance="%" y_axisLabel="seconds" fixedscale="false" chartSeriesDataType="TestCase"/>
      </chart>
      <chart chartTitle="Average Transaction Time" enabled="false">
        <counter category="LoadTest:Transaction" 
                 counter="Avg. Response Time" 
                instance="%" 
                y_axisLabel="Seconds" 
                fixedscale="false" 
                chartSeriesDataType="TransactionTimer"/>
      </chart>
      <chart chartTitle="Average Page Time" enabled="true">
        <counter category="LoadTest:Page" counter="Avg. Page Time" instance="%" y_axisLabel="seconds" fixedscale="false" chartSeriesDataType="Page"/>
      </chart>
      <!-- _____Throughput_____ -->
      <chart chartTitle="Tests Per Second" enabled="false">
        <counter category="LoadTest:Test" counter="Tests/Sec" instance="_Total" y_axisLabel="Qty" fixedscale="false" chartSeriesDataType="TestCase"/>
      </chart>
      <chart chartTitle="Transactions Per Second" enabled="false">
        <counter category="LoadTest:Transaction" counter="Transactions/Sec" instance="_Total" y_axisLabel="Qty" fixedscale="true" chartSeriesDataType="TransactionTimer"/>
      </chart>
      <chart chartTitle="Pages Per Second" enabled="true">
        <counter category="LoadTest:Page" counter="Pages/Sec" instance="_Total" y_axisLabel="Qty" fixedscale="false" chartSeriesDataType="Page"/>
      </chart>
      <chart chartTitle="Errors Per Second" enabled="false">
        <counter category="LoadTest:Errors" counter="Errors/Sec" instance="%" y_axisLabel="seconds" fixedscale="false" chartSeriesDataType="Error"/>
      </chart>
      <!-- _____Totals_____ -->
      <chart chartTitle="Total Tests" enabled="false">
        <counter category="LoadTest:Test" counter="Total Tests" instance="_Total" y_axisLabel="Qty" fixedscale="false" chartSeriesDataType="TestCase"/>
      </chart>
      <chart chartTitle="Total Transactions" enabled="false">
        <counter category="LoadTest:Transaction" counter="Total Transactions" instance="_Total" y_axisLabel="Qty" fixedscale="false" chartSeriesDataType="TransactionTimer"/>
      </chart>
      <chart chartTitle="Total Pages" enabled="false">
        <counter category="LoadTest:Page" counter="Total Pages" instance="_Total" y_axisLabel="Qty" fixedscale="false" chartSeriesDataType="Page"/>
      </chart>
      <chart chartTitle="Total Errors" enabled="false">
        <counter category="LoadTest:Errors" counter="Total Errors" instance="%" y_axisLabel="seconds" fixedscale="false" chartSeriesDataType="Error"/>
      </chart>
    </KeyMetrics>

    <Sut chartTemplate="HighResLarge">
      <!-- Each counter below will get its own chart and will utilize all of the machines from the specified machineList -->
      <chart chartTitle="SUT - Processor Utilization" enabled="true">
        <counter category="Processor" counter="% Processor Time" instance="_Total" y_axisLabel="Percent" machineList="__SUT" fixedscale="100"/>
      </chart>
      <chart chartTitle="SUT - Available MBytes" enabled="false">
        <counter category="Memory" counter="Available MBytes" instance="" y_axisLabel="MB" machineList="__SUT" fixedscale="false"/>
      </chart>
    </Sut>

    <TestRig chartTemplate="HighResLarge">
      <!-- Each counter below will get its own chart and will utilize all of the machines from the specified machineList -->
      <chart chartTitle="RIG - Processor Utilization" enabled="false">
        <counter category="Processor" counter="% Processor Time" instance="_Total" y_axisLabel="Percent" machineList="__RIG" fixedscale="100"/>
      </chart>
      <chart chartTitle="RIG - Available MBytes" enabled="false">
        <counter category="Memory" counter="Available MBytes" instance="" y_axisLabel="MB" machineList="__RIG" fixedscale="false"/>
      </chart>
    </TestRig>

    <ComboChartSets chartTemplate="HighResLarge">
      <!-- Each chart below will have its own chart and will contain all of the counters in the group.
      NOTE: If a counter below shows a machineList property, then all machines in the list will get added, each machine having a separate series. 
      NOTE: These items will use default colors, but you can override them by specifying a color for each item,-->
      <chart chartTitle="Key Indicators" enabled="true">
        <counter chartType="Line" category="LoadTest:Scenario" counter="User Load" instance="_Total" fixedscale="false" enabled="true" lineColor="Red" lineWidth="3"/>
        <counter chartType="Line" category="LoadTest:Page" counter="Pages/Sec" instance="_Total" fixedscale="false" enabled="true" lineColor="Black"/>
        <counter chartType="Line" category="LoadTest:Page" counter="Avg. Page Time" instance="_Total" fixedscale="false" enabled="true" lineColor="Blue"/>
        <counter chartType="Line" category="LoadTest:Transaction" counter="Transactions/Sec" instance="_Total" enabled="false" fixedscale="false"/>
        <counter chartType="Line" category="LoadTest:Transaction" counter="Avg. Transaction Time" instance="_Total" enabled="false" fixedscale="false"/>
      </chart>
      <chart name="Page Throughput Vs Web CPU" enabled="false">
        <counter chartType="Line" category="LoadTest:Page" counter="Pages/Sec" instance="_Total" fixedscale="false" enabled="true"/>
        <counter chartType="Line" category="Processor" counter="% Processor Time" instance="_Total" machineList="__WEB" fixedscale="100" enabled="true"/>
      </chart>
    </ComboChartSets>
  </SingleRun>
  <!-- Items to be included in a report that compares the results for multiple runs -->
  <RunComparison>
    <ScoreCardChartSets>
      <chart name="CPU vs. Test Throughput" enabled="true" template="Templates\Scorecard_ComboChart.xml">
        <counter chartType="ScoreCardColumn" name="Web CPU" machine="%WEB%" columnToPlot="Avg" color="Silver" enabled="true"/>
        <counter chartType="ScoreCardColumn" name="App CPU" machine="%APP%" columnToPlot="Avg" color="DarkSlateGray" enabled="false"/>
        <counter chartType="ScoreCardColumn" name="SQL OLTP CPU" machine="%OLTP%" columnToPlot="Avg" color="LightSlateGray" enabled="false"/>
        <counter chartType="ScoreCardColumn" name="Sql RPT CPU" machine="%RPT%" columnToPlot="Avg" color="Gold" enabled="true"/>
        <counter chartType="ScoreCardLine" name="Pages Per Second" columnToPlot="PagesSec_All" color="Coral" ShowGoal="false" Goal="3.0" HigherIsBetter="true" enabled="true"/>
      </chart>
      <chart name="CPU vs. Test Throughput" enabled="false" template="Templates\Scorecard_ComboChart.xml">
        <counter chartType="ScoreCardColumn" name="Web CPU" machine="%WEB%" columnToPlot="Avg" color="Silver" enabled="true"/>
        <counter chartType="ScoreCardColumn" name="SQL OLTP CPU" machine="%OLTP%" columnToPlot="Avg" color="LightSlateGray" enabled="false"/>
        <counter chartType="ScoreCardColumn" name="Sql RPT CPU" machine="%RPT%" columnToPlot="Avg" color="Gold" enabled="true"/>
        <counter chartType="ScoreCardLine" name="Average Page Time" columnToPlot="AvgPgT_All" color="Coral" ShowGoal="false" Goal="3.0" HigherIsBetter="true" enabled="true"/>
      </chart>
      <chart name="Rig Resources vs. Test Throughput" enabled="false" template="Templates\Scorecard_ComboChart.xml">
        <counter chartType="ScoreCardColumn" name="Agent CPU" machine="%CL%" columnToPlot="Avg" color="Silver" enabled="true"/>
        <counter chartType="ScoreCardColumn" name="CSRS CPU" machine="%CSRS%" columnToPlot="Avg" color="LightSlateGray" enabled="false"/>
        <counter chartType="ScoreCardColumn" name="Controller CPU" machine="labac01" columnToPlot="Avg" color="Gold" enabled="true"/>
        <counter chartType="ScoreCardLine" name="Tests Per Second" columnToPlot="TestsSec_All" color="Coral" ShowGoal="true" Goal="2.4" HigherIsBetter="true" enabled="true"/>
      </chart>
      <chart name="Memory Consumption" enabled="false" template="Templates\Scorecard_StackedChart.xml">
        <counter chartType="ScoreCardStackedColumn" name="Web Available Memory" machine="%WEB%" color="Silver" enabled="false"/>
        <counter chartType="ScoreCardStackedColumn" name="Sync Available Memory" machine="%SYNC%" color="LightSlateGray" enabled="true"/>
        <counter chartType="ScoreCardStackedColumn" name="Sql Available Memory" machine="%SQL%" color="Gold" enabled="true"/>
      </chart>
    </ScoreCardChartSets>

    <ScoreCardGraphSets>
      <chart name="User Load" enabled="true" template="Templates\chartTemplateWithLegend.xml" title="User Load" axisLabel="Qty" machineList="'ControllerMachine'" category="LoadTest:Scenario" counter="User Load" instance="_Total" fixedscale="false"/>
      <chart name="Error Rate" enabled="false" template="Templates\chartTemplateWithLegend.xml" title="Error Rate" axisLabel="Qty" machineList="'ControllerMachine'" category="LoadTest:Errors" counter="Errors/Sec" instance="%" fixedscale="false"/>
      <chart name="Test Throughput" enabled="true" template="Templates\chartTemplateWithLegend.xml" title="Test Throughput" axisLabel="Qty" machineList="'ControllerMachine'" category="LoadTest:Test" counter="Tests/Sec" instance="_Total" fixedscale="false"/>
      <chart name="Page Throughput" enabled="true" template="Templates\chartTemplateWithLegend.xml" title="Page Throughput" axisLabel="Qty" machineList="'ControllerMachine'" category="LoadTest:Page" counter="Pages/Sec" instance="_Total" fixedscale="false"/>
      <chart name="Page Response Time" enabled="true" template="Templates\chartTemplateWithLegend.xml" title="Page Response Time" axisLabel="Qty" machineList="'ControllerMachine'" category="LoadTest:Page" counter="Avg. Page Time" instance="_Total" fixedscale="false"/>
      <chart name="App CPU Comparison" enabled="true" template="Templates\chartTemplateWithLegend.xml" title="Processor Comparison {0}" axisLabel="%" machineList="'LIMS13'" category="Processor" counter="% Processor Time" instance="_Total" fixedscale="100" />
      <chart name="SQL CPU Comparison" enabled="true" template="Templates\chartTemplateWithLegend.xml" title="Processor Comparison {0}" axisLabel="%" machineList="'LIMS14'" category="Processor" counter="% Processor Time" instance="_Total" fixedscale="100" />
      <chart name="App MEM Comparison" enabled="false" template="Templates\chartTemplateWithLegend.xml" title="Available MB Comparison {0}" axisLabel="MB" machineList="'LIMS13'" category="Memory" counter="Available MBytes" instance="" fixedscale="false"/>
      <chart name="SQL MEM Comparison" enabled="false" template="Templates\chartTemplateWithLegend.xml" title="Available MB Comparison {0}" axisLabel="MB" machineList="'LIMS14'" category="Memory" counter="Available MBytes" instance="" fixedscale="false"/>
      <chart name="Rig CPU Comparison" enabled="false" template="Templates\chartTemplateWithLegend.xml" title="Processor Comparison {0}" axisLabel="%" machineList="'ControllerMachine'" category="Processor" counter="% Processor Time" instance="_Total" fixedscale="100" />
      <chart name="Rig MEM Comparison" enabled="false" template="Templates\chartTemplateWithLegend.xml" title="Available MB Comparison {0}" axisLabel="MB" machineList="'ControllerMachine'" category="Memory" counter="Available MBytes" instance="" fixedscale="false"/>
      <chart name="% Time in Web Test Code" enabled="true" template="Templates\chartTemplateWithLegend.xml" title="% Time in Web Test Code {0}" axisLabel="%" machineList="'ControllerMachine'" category="LoadTest:Test" counter="% Time in WebTest code" instance="_Total" fixedscale="100"/>
    </ScoreCardGraphSets>
  </RunComparison>
</CounterSets>



